#ifndef VOLUMEUNIT_H
#define VOLUMEUNIT_H

#include <Unit.h>
#include <string>


struct VolumeUnit:Unit
{

  /* OVERRIDE */ const Unit& getBaseUnit() const;

  static const VolumeUnit& Oz();
  static const VolumeUnit& Tsp();
  static const VolumeUnit& Tbsp();
  
protected:  
  /* OVERRIDE */ const std::string getUnitString() const;
  /* OVERRIDE */ std::string printEveryUnit(const PrintFormat& format, int amountLeftInBaseUnit) const;
private:
  explicit VolumeUnit(const int factorOfBaseUnit);

};


#define OZ    VolumeUnit::Oz()
#define TSP   VolumeUnit::Tsp()
#define TBSP  VolumeUnit::Tbsp()


#endif
